package com.company.emallbackend.entity;

import cn.hutool.core.annotation.Alias;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
* <p>
* 
* </p>
*
* @author hanlijian
* @since 2023-01-12
*/
@Getter
@Setter
@TableName("t_order")
@ApiModel(value = "Order对象", description = "")
public class Order implements Serializable {

private static final long serialVersionUID = 1L;

    // 主键id
    @ApiModelProperty("主键id")
    @Alias("主键id")
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    // 订单号
    @ApiModelProperty("订单号")
    @Alias("订单号")
    private String orderNo;

    // 总价
    @ApiModelProperty("总价")
    @Alias("总价")
    private BigDecimal totalPrice;
    
    //支付宝订单号
    @ApiModelProperty("支付宝订单号")
    @Alias("支付宝订单号")
    private String tradeNo;

    // 关联user表id
    @ApiModelProperty("关联user表id")
    @Alias("关联user表id")
    private Integer userId;

    // 下单手机号
    @ApiModelProperty("下单手机号")
    @Alias("下单手机号")
    private String linkPhone;

    // 下单地址
    @ApiModelProperty("下单地址")
    @Alias("下单地址")
    private String linkAddress;

    // 订单状态(0:待支付 1:待发货  2:待评价)
    @ApiModelProperty("订单状态(0:未支付  1:已支付  2:已发货  3:待评价)")
    @Alias("订单状态(0:未支付  1:已支付  2:已发货  3:待评价)")
    private Integer state;

    // 创建时间
    @ApiModelProperty("创建时间")
    @Alias("创建时间")
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    // 修改时间
    @ApiModelProperty("修改时间")
    @Alias("修改时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    // 逻辑删除(0:未删除  1:已删除)
    @ApiModelProperty("逻辑删除(0:未删除  1:已删除)")
    @Alias("逻辑删除(0:未删除  1:已删除)")
    @TableLogic
    private Integer isDelete;
    
    @TableField(exist = false)
    private List<ProductOrder>productOrderList;
}